import java.util.Random;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
System.out.println("请输入您需要的数组长度");
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
   int[][] arr =new int[n][n];
   setDate(arr);//给数组插入数据
   printArr(arr);//打印数组
   int[] result=findMaxAndMin(arr);//找出数组里的最大值和最小值

            System.out.println("这个数组的最大值 "+result[0]);
            System.out.println("这个数组的最小值 "+result[1]);
   int num=findAverage(arr,n);//算平均数
   System.out.println("这个数组的平均数="+num);
   int[] b=lineAverage(arr,n);//主副对角线的平均值
   System.out.println("主对角线平均值 "+b[0]/n);
   System.out.println("副对角线平均值 "+b[1]/n);
   int c=addOut(arr,n);//外围元素之和
   System.out.println("外围的元素之和"+c);
   setZero(arr,n);//主对角线下面置为0
        }

    private static void setZero(int arr[][],int n) {
       for(int i=0;i<n;i++){
           for(int j=0;j<n;j++){
if(i>j){
    arr[i][j]=0;
}


           }
       }
 printArr(arr);
    }

    private static int addOut(int[][]arr, int n) {
        int num=0;
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                if(i==0||j==0||i==(n-1)||j==(n-1)){
                    num+=arr[i][j];
                }

            }
        }
        return num;
    }

    private static int[] lineAverage(int[][] arr,int n) {
int num=0;
int count=0;
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                if(i==j){
num+=arr[i][j];
                }
                if(i+j==n){
                    count+=arr[i][j];
                }
            }
        }
        return new int[]{num,count};
    }

    private static int findAverage(int[][] arr,int n) {
        int count=0;
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){

                count+=arr[i][j];
            }
        }
        return count/(n*n);
    }


    private static int[] findMaxAndMin(int[][] arr) {
        int max=arr[0][0];int min=arr[0][0];
        for(int i=1;i<arr.length;i++){
            for(int j=1;j<arr[i].length;j++){
                if(max<arr[i][j]){
                    max=arr[i][j];
                }
                if(min>arr[i][j]){
                    min=arr[i][j];
                }
            }

        }
    return new int[]{max,min};
    }

    private static void printArr(int[][] arr) {
        for(int i=0;i<arr.length;i++){
            for(int j=0;j<arr[i].length;j++){
                System.out.print(arr[i][j]+" ");
            }
            System.out.println();
        }
    }

    private static void setDate(int[][] arr) {
        Random rand=new Random();//生成随机数
        for(int i=0;i<arr.length;i++){
            for(int j=0;j<arr[i].length;j++){
                arr[i][j]=rand.nextInt(10);
            }
        }
    }
}